# 一些工具

# 存总词集词向量列表的文件
fileStoWordVec = '总词集.txt'
# 停用词文件,需要手动重置!
fileStop = '停用词.txt'
# 每次放入的关键词文件,需要手动清空!
fileKey = '不断增长的关键词.txt'


# 获取可能无用的词汇,也即是可能非常有用的有代表性的词汇
# 参数(想要检测关键词的词频向量们所在的文件)
def getKeyWords(fileFreq):
	# 从文件中拿出有序词集
	with open(fileStoWordVec, 'r', encoding='utf-8') as f:
		vocabSetLst = []  # 总有序词集
		# 读入有序词集
		for line in f.readlines():
			if line.strip() != '':
				vocabSetLst.append(line.strip())
	###print(vocabSetLst)
	###print("读出来的总词集长是%d"%len(vocabSetLst))
	# 检查文件中的词频,确定关键词汇
	with open(fileFreq, 'r', encoding='utf-8') as f:
		for line in f.readlines():
			# 本行转成的词频向量
			nowVec = [int(num) for num in line.split()]
			notZero = 0  # 记录非0的分量的个数
			isKey = True  # 记录是否需要筛选出来
			theWordLst = []  # 记录这个记录中筛选出来的词
			for i in range(len(nowVec)):
				# 在这里设定阈值,筛选仅出现多少个有效词的向量
				if notZero > 1:
					isKey = False  # 超过阈值表示这条记录不被筛选出来
					break  # 即刻跳出
				elif nowVec[i] > 0:
					theWordLst.append(vocabSetLst[i])
					###print(vocabSetLst[i])
					notZero += 1
			# 如果当前是需要筛选出来的记录
			if isKey:
				###print(theWordLst, end='')  # 输出这些导致这条记录存在的词看看
				# 打开并追加到关键词词集中
				with open(fileKey, 'a', encoding='utf-8') as f:
					f.write("\n".join(theWordLst) + "\n")
				# 打开并追加到停用词集中
				with open(fileStop, 'a', encoding='utf-8') as f:
					f.write("\n".join(theWordLst) + "\n")
